#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project ：python_learning 
@File ：get_table_data.py
@IDE  ：PyCharm 
@Author ：李涵彬
@Date ：2024/2/28 22:32 
"""

from abc import ABCMeta, abstractmethod
from typing import List


# 定义抽象接口
class ITableData(metaclass=ABCMeta):
    @abstractmethod
    def get_data(self) -> List[object]:
        pass


# 定义数据库具体实现
class DataFromDatabase(ITableData):
    def get_data(self) -> List[object]:
        # 连接数据库，执行查询语句，返回结果
        return []


# 定义excel文件具体实现
class DataFromExcel(ITableData):
    def get_data(self) -> List[object]:
        # 读取excel文件，返回结果
        return []


# 使用依赖注入的方式，实现不同数据源之间的切换
class DataTableController:
    def __init__(self, table_data: ITableData):
        self.table_data = table_data

    def get_data(self) -> List[object]:
        return self.table_data.get_data()
